![](/img/trans.png)
[英]Getting undefined variable when calling function from another function
[英]Getting undefined when calling an async function from another function javascript
對於這個項目,我使用的是 wretch,它是 fetch 的包裝器
這是我的代碼的一個突破:
我對單獨的服務文件進行了可憐的調用,以將渲染功能與可憐的功能分開。
我要出口
export const wretchFunc = var => {
return wretch(url)
.json({
var,
})
.get()
.json()
};
問題出在第二個文件上:函數 2 呈現了這個可憐的 function 的結果,我確實解決了 promise 並且我得到了我想要的結果,但是當我從函數 1 調用它時,即使放置了一個控制台,返回值也是未定義的。在 function2 中登錄給了我正在尋找的 boolean。
我有一個 function1 返回:
return (function2 || function3)
並且 function2 呈現 wretchFunc 的結果,如下所示:
function function2(state) {
const var = fun(state);
if (!var) {
return false;
}
wretchFunc(var).then(json => {
return JSON.parse(json).isTrue;
});
}
我的假設是 function 在收到 function2 的結果之前執行,但我不知道該怎么做。
編輯:我試着做:
return wretchFunc(var).then(json => {
return JSON.parse(json).isTrue;
});
}
這給了我另一個 promise,我可以在上面的 function 上解決它,但是由於我有一個先前的條件 if(.var) 返回 false,這會使 function 返回不同的東西。 有沒有一種方法可以將 promise 的值轉換為 function2 並強制 function1 等待其結果。
謝謝
嘗試包裝成新的 Promise 並返回它
function function2(state) {
return new Promise((res, rej) => {
const var = fun(state);
if (!var)
res(false);
wretchFunc(var)
.then(json => resolve(JSON.parse(json).isTrue)
.catch(err) => rej(err));
})
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.