promise - 如何使用 Promises 顺序调用代码
问题描述
我刚刚开始学习如何使用 Promises,因为到目前为止我一直在尝试回调。我正在尝试下面的代码:它应该调用promise func1,等待1 秒,检查func1 的返回值,然后调用promise func2,等待1 秒,然后检查func2 的返回值。
当我运行它时,我实际上得到了这个输出:
In func1
func1 sent: 1
func2 sent: undefined
所以很明显 func2 没有被调用。
有人可以帮助 Promis 新手进行第一次代码实验吗?谢谢
class A {
func1(param) {
return new Promise((resolve, reject) => {
// Use param...
console.log("In func1");
setTimeout(() => resolve("1"), 1000);
});
}
func2(param) {
return new Promise((resolve, reject) => {
// Use param...
console.log("In func2");
setTimeout(() => resolve("2"), 1000);
});
}
}
const a = new A();
a.func1("arg1")
.then((value) => {
// Check the value of value returned from func1
console.log("func1 sent: " + value);
}).then((value) => {
// Check the value of value returned from func2
console.log("func2 sent: " + value);
});
我的代码基于此。这里没有对第二个函数的显式调用,它可以工作......为什么它不能在解决方案中工作?
new Promise(function(resolve, reject) {
console.log("In func1");
setTimeout(() => resolve(1), 1000);
}).then(function(value) {
console.log("func1 sent: " + value);
return new Promise((resolve, reject) => {
console.log("In func2");
setTimeout(() => resolve(2), 1000);
});
}).then(function(value) {
console.log("func2 sent: " + value);
});
解决方案
推荐阅读
- php - wordpress preg_match_all() 错误,使用 preg_replace_callback
- python - 按照视频教程进行操作,但出现很多错误
- javascript - PubNub 订阅不断取消订阅
- asp.net-core - 如何在 Openshift 容器中设置 ASP.NET Core 端口
- arrays - 使用反应钩子在 REACTJS 中使用数组填充动态下拉列表的步骤
- python - 为“__hpKey”抓取网站,然后在 python 中使用 requests 和 beautifulsoup 登录
- javascript - React Native - TouchableOpacity 不适用于具有位置的容器:绝对
- vb.net - 以管理员身份运行 cmd 但设置适用于登录用户
- c# - System.OperationCanceledException 在 Xamarin 中的 Azure 事件中心的每个事件上引发
- python - 如何使用字数和列名注释堆积条形图