sách gpt4 ai đã đi

JavaScript promise 、解决、拒绝

In lại 作者:行者123 更新时间:2023-11-30 19:30:05 hai mươi bốn 4
mua khóa gpt4 Nike

所以我想知道 promise 的响应和拒绝对象是怎么回事。我正在读这个tài liệu有些事情我还不清楚。

Ví dụ,resolve() 对象是关于什么的。

我已经看到这个东西可以包含在一个字符串中,然后启动 resolve() ?这是怎么回事,这有什么意义

var promise1 = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('foo');
}, 300);
});

我最初认为只要回调函数返回一个值,解析函数/对象就会启动然后它可以继续 .then()

所以我已经研究了一段时间,结果证明我的返回决心理论在 50% 的时间里有效,另外 50% 的时间让我崩溃。

还有拒绝对象/函数,当假设函数的结果为 0 但它必须为 1 以便我可以继续时,你如何启动它?

var promise1 = new Promise(function(resolve, reject) {
if(someFunction() === 0)
{
reject();
} khác {
resolve()
}
});

此代码仅在我的 someFunction() 中有效,我没有任何异步函数,而且当我有任何异步函数时,它总是返回 undefined。

所以到目前为止,promise 的概念及其用途对我来说还不是很清楚。

1 Câu trả lời

你是对的,只要回调函数返回一个值,resolve 函数(哦,它们是函数)就会启动。

在你出现的情况下,该值返回它的“foo”

即使它不是一个函数,它也等同于让一个函数返回一些东西。所以在这一点上一切都很好。

事实上,当回调函数有任何一段异步代码时它不起作用,这只是因为如您所说,它返回未定义。该函数尚未完成运行,因此它会返回该函数。它不等待它。我能想到的解决你们两个问题的最简单的解决方案是将 resolve 和 reject 对象传递给回调函数并从内部启动它们

Ví dụ

var promise1 = new Promise(function(resolve, reject) {
someFunction(resolve,reject);
});

function someFunction(resolve,reject){
var i = 0;
setTimeout(function() {
if(i===0){
reject(/**You can even pass it some variables here if u wanted*/);
} khác {
resolve(/**Same here*/); // this should work just fine and it will sucesfully launch .then with whatever u need returned
}
}, 300);
}

关于JavaScript promise 、解决、拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513590/

hai mươi bốn 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com