如何讓這個垃圾變量及時讀取爲shipmentObjs的值?我知道console.log會讀取「未定義」,但我希望它在函數後執行。怎麼樣?我嘗試了幾種方法,我似乎無法想出一個辦法來做到這一點如何讓這個函數及時執行下一個代碼?
let garbage;
db.scan({TableName: 'shipments'}, (err,shipments) => {
if (err) console.error(err);
// We got our shipments
let shipmentObjs = shipments.Items;
// Bring out the "done: false" shipments to display
shipmentObjs = shipmentObjs.filter(obj => obj.done === false);
garbage = shipmentObjs;
});
});
// prints "undefined" . Must figure out a way to make it read shipmentObjs from the above code
console.log(garbage);
此代碼完全正常。它打印。你真正的問題是什麼? –
對不起,我將代碼更改爲其他內容---真實代碼。我只是在開始時做了一個虛擬代碼,以使它更容易,但我猜虛擬代碼的工作原理。所以這是現在的真正的代碼。 – Chris
你需要明白'db.scan'是異步的。您的'console.log'發生在掃描開始之前。異步代碼可以通過使用promise或回調來處理。 –