gpt4 book ai didi

javascript - 在此 javascript 代码中,console.log 为 resolve 函数显示 "native code"——此代码在哪里?

转载 作者:行者123 更新时间:2023-11-29 23:18:01 26 4
gpt4 key购买 nike

在执行 console.log 语句时,在下面的代码中我看到:resolve: function () { [本地代码] }

我的问题只是,代码是 Promise 定义的一部分吗?如果是这样的话,resolve 参数是如何与这个“ native 代码”相关联的?

编辑:我的问题不是关于查看 native 代码,而是代码与解析参数相关联的方式。

/* ES5, using Bluebird */
var isMomHappy = true;

// Promise
var willIGetNewPhone = new Promise(
function (resolve, reject) {
if (isMomHappy) {
var phone = {
brand: 'Samsung',
color: 'black'
};
console.log("resolve: "+resolve);
resolve(phone);
} else {
var reason = new Error('mom is not happy');
reject(reason);
}

}
);


// call our promise
var askMom = function () {
willIGetNewPhone
.then(function (fulfilled) {
// yay, you got a new phone
console.log(fulfilled);
})
.catch(function (error) {
// ops, mom don't buy it
console.log(error.message);
});
}

askMom();

最佳答案

...is the code part of the Promise definition

是的,没错。该定义内置于 JavaScript 引擎本身。根据 JavaScript 引擎的不同,promises 可能会在 JavaScript 本身、C++ 或其他语言中实现,但无论它们是 JavaScript 引擎中的“ native 代码”,Function.prototype.toString 都不会公开它们。 .

...and how did the resolve parameter get associated with this "native code" if that is true?

当您调用 new Promise 时,您正在调用 JavaScript 引擎的 native promise 功能。该功能使用 resolve 调用您传入的函数(promise 执行器函数)和 reject它创建的函数(从 native 代码),因此您可以解决或拒绝 promise 。

更多信息 the spec ,虽然它相当繁重......

关于javascript - 在此 javascript 代码中,console.log 为 resolve 函数显示 "native code"——此代码在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51926024/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com