脚本猫_后台脚本_Promise返回值_例子
### 脚本猫,后台脚本,获取 另一个 函数内 Promise 返回值```
// ==UserScript==
// @name Pt_Sign
// @namespace pt_Sign2
// @version 0.2.0
// @descriptionsign
// @author 24-4-30
// @grant GM_xmlhttpRequest
// @grant GM_notification
// @grant GM_log
// @connect test.com
// @crontab * * once * *
// ==/UserScript==
// 定时 脚本
// 签到 函数,网址,网站名字
function sign(url,website_name) {
return new Promise((resolve, reject) => {
// 定义目标URL
let targetUrl = url;
// 发送GET请求
GM_xmlhttpRequest({
method: 'GET',
url: targetUrl,
onload: function(response) {
// 请求成功,显示返回的内容
// console.log(website_name + ' 返回的内容:');
// 网页 返回 文本
let webtext = response.responseText;
// 判断 成功 字符串, || 是逻辑或(OR)运算符,btschool 魔力值
if(webtext.indexOf('到已得') != -1 || webtext.indexOf('魔力值') != -1) {
GM_notification(website_name + ' 签到 完成');
resolve( website_name + "_sign ok");
// 执行成功,并 返回值 ,返回到 主函数
} else {
// 签到错误
console.log(website_name + "~~~~~~~~~" +webtext);
GM_notification(website_name + ' 签到 失败');
reject(website_name + "_sign fail");
// 执行失败,并 返回值 ,返回到 主函数
}
},
onerror: function(error) {
// 请求失败,显示错误信息
console.error(website_name + ' 请求失败:', error);
// 弹出提示框
GM_notification(website_name + ' 请求失败:', error);
reject(website_name + "_sign error");
// 执行失败,并返回错误原因
}
});
});
}
return new Promise(async (resolve, reject) => {
try {
// 签到
const end = await sign('https://test.com/index.php?action=addbonus', 'web name');
GM_log("sign");
resolve("sign -ok:",end);
} catch (error) {
//GM_log(error);
reject("sign -error: " + error);
}
});
``` ggnb
哥哥可以再看看相关的文档学习:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Promise 王一之 发表于 2024-4-30 17:52
ggnb
哥哥可以再看看相关的文档学习:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Referenc ...
资料很详细,我常用 gpt 写个例子 ,测试下运行是否成功,感觉 较简便
页:
[1]