Javascript 未处理的承诺拒绝-Firefox
我一直在犯这个错误,我不知道这是为什么。我使用的是最新版本的FF,这段代码在最新版本的Chrome甚至Ie 11中都能正常工作Javascript 未处理的承诺拒绝-Firefox,javascript,firefox,promise,axios,Javascript,Firefox,Promise,Axios,我一直在犯这个错误,我不知道这是为什么。我使用的是最新版本的FF,这段代码在最新版本的Chrome甚至Ie 11中都能正常工作 Unhandled promise rejection Error: Network Error Stack trace: createError@http://localhost:8080/main.js:6075:15 handleError@http://localhost:8080/main.js:5618:14 columnNumber: 15 con
Unhandled promise rejection
Error: Network Error
Stack trace:
createError@http://localhost:8080/main.js:6075:15
handleError@http://localhost:8080/main.js:5618:14
columnNumber: 15
config: Object { timeout: 5000, xsrfCookieName: "XSRF-TOKEN", xsrfHeaderName: "X-XSRF-TOKEN", … }
fileName: "http://localhost:8080/main.js"
lineNumber: 6075
message: "Network Error"
request: XMLHttpRequest { readyState: 4, timeout: 5000, withCredentials: false, … }
response: undefined
stack: "createError@http://localhost:8080/main.js:6075:15\nhandleError@http://localhost:8080/main.js:5618:14\n"
__proto__: Object { … }
onUnhandled/</result<
es6.promise.js:101
./node_modules/babel-polyfill/node_modules/core-js/modules/_perform.js/module.exports
_perform.js:3:12
onUnhandled/<
es6.promise.js:95
./node_modules/babel-polyfill/node_modules/core-js/modules/_invoke.js/module.exports
_invoke.js:5
<anonymous>
_task.js:35
run
_task.js:21
listener
_task.js:25
似乎即使他们是一个错误,它仍然调用我的“then”,这导致了问题(尽管仍然是一个重要问题,即当所有其他浏览器都可以通过时,为什么会出现Network错误)
看起来您正在使用生成器函数。希望这与问题无关。你是在兑现承诺,而不是先等待承诺
您是否尝试过添加
.catch(e=>{console.log(e);})
或其他东西来查看拒绝是什么?是否post()
返回承诺?如果是这样,您应该执行response.catch(error=>{…})
。如果没有,就用try/catch来包装代码,因为try{const response=…}catch(error){…}
我建议您阅读一篇关于承诺的文章:我更新了我的代码,但是它确实返回了一个承诺,并且似乎在.then()中发生了erorr我认为它不会到达那个代码,因为我认为我只提供了“已解析”函数。所以我要解决这个问题,但它仍然不是根本问题。“网络问题”似乎是根本问题。您正在尝试访问“”,这是文件还是终点?否,这是webpack Service设置的位置。它是运行我的前端代码的东西。我应该点击另一个localhost端点,比如localhost:这可能是因为它是https吗?我使用的是Mobx状态树,它有一个叫做“flow”的东西,它的行为类似于async/await,“yield”相当于“await”。让我看看catch是否给了我什么有用的东西。当出现wait
行为时,错误从使用它的地方抛出,可以使用try/catch进行处理。catch几乎说的是相同的事情“网络错误”,尽管它仍然说它在FF控制台中未处理。
login: flow(function*(email, password) {
console.log("login")
try {
const response = yield self.rootStore().axios.post(
"/tokens/auth", {
email: email,
password: password,
grantType: "password",
}
);
return response;
}
catch(e){
console.log(e, "catch")
}
}),
login(values.email, values.password).then((response) => {
console.log("response", response); // this get called. Eventhough in the login flow function the error gets caught.
}).catch(e => {console.log(e)})