所以我的Chrome扩展程序出现了这个问题:
function comparingDates(fn) {
var currentDate = new Date();
var j;
chrome.storage.sync.get("storeDates", function comparing(items) {
if (!chrome.runtime.error) {
var arrayDates = items.storeDates;
var i = 0;
do {
if (arrayDates[i].date == currentDate.getDate()) {
j = i; // problemas al enviar el j
};
i++
} while (!j);
fn(j);
};
});
};
var currentDay;
comparingDates(function (l1) {
if (!l1) {
console.log("error");
} else {
currentDay = l1;
console.log("succes");
};
storeDates对象包含多个日期,与currentDate进行比较。当do / while循环找到匹配时,它假设为j赋值。但由于某些原因,当发送回调时,不会进行currentDay的分配。
我试图掌握回调理论并将其实现到我的代码中,但大多数我可以找到的示例只是打印结果而不是分配给某个值。 有关如何解决此问题的任何建议
答案 0 :(得分:0)
在查看评论后,我找到问题的解决方案:
function comparingDates(fn) {
var currentDate = new Date();
var j;
chrome.storage.sync.get("storeDates", function comparing(items) {
if (!chrome.runtime.error) {
var arrayDates = items.storeDates;
var j = arrayDates.findIndex(x => x.date == currentDate.getDate());
console.log(j);
fn(j);
};
});
};
var currentDay;
comparingDates(function (l1) {
if (!l1) {
console.log("error");
} else {
currentDay = l1;
console.log("succes");
};