gpt4 book ai didi

javascript - Nodejs 中 Promise 中外部变量的可访问性

转载 作者:行者123 更新时间:2023-12-03 10:14:30 25 4
gpt4 key购买 nike

有人可以解释一下为什么这不起作用:

var outsideVar = 15;
myFunc.doSomething().then(function() {
console.log("outsideVar: " + outsideVar);
}).fail(function(err) {
console.log("error: ", err);
});

输出是错误:未定义或outsideVar:未定义(取决于outsideVar是否是对象的变量或属性。

外部变量应该可以从函数内部访问,还是我错了?

编辑:我正在使用 spookyjs 的这种结构,并且包含很长字符串的对象似乎存在问题。

最佳答案

在 NodeJS 中,您可以使用一个函数来处理错误。就像这样:

myPromise.then(function() {
// callback, executed on successful promise resolution
}, function() {
// errback, executed on rejection
}, function() {
// progressback, executed if the promise has progress to report
});

.fail() 不是 Node 中可识别的函数,除非您显式定义了 .fail() 函数。 .fail() 抛出未定义的错误。 Nodejs 中的 .fail() 用于构建单元测试,而不是 Promise。 https://nodejs.org/api/assert.html

否则,如果编写得当,闭包应该可以工作。这是典型的闭包语法。请参阅Is promise a closure?有关带有闭包的 promise 的更多详细信息。

编辑您还可以使用 .catch() 而不是显式错误函数。

关于javascript - Nodejs 中 Promise 中外部变量的可访问性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29949684/

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