<script type="text/javascript">
            // 模拟一个异步函数,返回一个 Promise,最终解析出某个值,比如用户ID
            function fetchData() {
              return new Promise((resolve, reject) => {
                  //发动网络请求
                  //成功回调 resolve(userId);
                  //失败回调 reject(res);
                // 模拟异步操作,比如网络请求
                setTimeout(() => {
                  const userId = 12345; // 假设我们从某处获取到了用户ID
                  console.log('fetchData 执行完成,得到 userId:', userId);
                  resolve(userId); // 返回的值可以被下一个 .then() 接收
                }, 1000); // 模拟1秒延迟
                //请求出错
                //reject(res);
              });
            }

            // 模拟另一个异步函数,需要使用上一个函数的结果
            function processData(userId) {
              return new Promise((resolve, reject) => {
                setTimeout(() => {
                  console.log('processData 执行,处理的 userId 是:', userId);
                  const result = `用户 ${userId} 的数据处理完成`;
                  resolve(result); // 最终结果
                }, 1000);
                //请求出错
                //reject(res);
              });
            }

            // 使用 Promise 链式调用
            //fetchData().then((userId) => {return processData(userId);}).then((finalResult) => { console.log('最终结果:', finalResult);}).catch((error) => { console.error('出错了:', error);});

            //语法糖形式
            async function main() {
              try {
                const userId = await fetchData();         
                const finalResult = await processData(userId);  
                console.log('最终结果:', finalResult);
              } catch (error) {
                console.error('出错了:', error);
              }
            }

            // 调用主函数
            main();
</script>

标签: none

您需要先登录才能发表评论。