阿罗哈.这是我潜伏之后的第一个问题.我为这个问题的详细但直接的形式道歉 - 以及对可接受的答案的限制 - 但我在这里做出贡献.我有一个问题,其他问题(例如如何避免在Node.js中的异步函数的长嵌套或Javascript中的链式回调可读性?)不满意我的回答.
我想执行几个Javascript回调,以便我有一个接一个发生的四个动作的序列.这是来源:
var self = this;
fade(div, fadeIn, -20, function() {
load(unload, dataOut, -10, function() {
load(self, dataIn, 10, function() {
fade(div, fadeOut, 20),0);
unload = self;}
);}
);}
);
Run Code Online (Sandbox Code Playgroud)
除了内部语义细节之外,load()和fade()函数非常相似,它们看起来与此类似:
function load(menuCategory, data, step, callback) {
menuCategory.parentNode.style.width = data+"px";
data += step;
if(dataIn <= data && data <= dataOut) {
setTimeout(function() { load(menuCategory,data,step,callback) }, 15);
} else if(callback && (typeof(callback) == 'function')) {
callback();}
}
Run Code Online (Sandbox Code Playgroud)
我有几个问题与这个混乱有关,但首先让我给你我不寻找的答案.使用jQuery的答案是不可接受的.使用其他计时或"同步"框架或模块的答案是不可接受的.质疑阻止执行的原因的答案是不可接受的.使用Javascript以外的语言的答案是不可接受的.非抽象答案是可以接受的,但最终的解决方案需要尽可能抽象,这意味着答案必须能够对各种相似但略有不同的行为采取行动.
这是我的主要问题:是否有一个函数/对象可以用来顺序应用这些操作,以减少这里的回调?换句话说,如果对象/函数能够同步执行每个动作,因为它是通过它单独迭代(即传递给它),对象会是什么样子?
次要问题:是否有人知道这个回调业务在其他语言中看起来像goto()多少?意思是,这种回调嵌套对我来说感觉非常尴尬和不优雅.是否有开发或已经开发的Javascript语言结构可以减少这种疯狂的业务?回调嵌套是一个最难遵循的逻辑流程.这感觉很尴尬.
我的目标是一个紧凑,优雅,有吸引力的本土Javascript对象/函数 - 我可以在for()循环或等效函数中调用 …
我有这个代码:
$("#downloadPopup").attr("href")
Run Code Online (Sandbox Code Playgroud)
这给了我一个链接,但我希望有一个回调来收集链接,例如:
$("#downloadPopup").attr("href", function(){
console.log($(this));
// i need make sure the link value is available (promise).
});
Run Code Online (Sandbox Code Playgroud)
我试过这个但是它不起作用,我不确定我是否必须将参数传递给回调.谢谢
我是节点js的新手,我正试图在这个节点js中设置一些变量
var perm1 = 0;
var perm2 = 0;
check_tasksAssigned(data,function(resp1) {
perm1 = resp1;
});
check_projectMembers(data,function(resp2) {
perm2 = resp2;
});
if(perm1 && perm2) {
// do some db stuff here
}
Run Code Online (Sandbox Code Playgroud)
但我得到的不确定.我也试过这样的,
var perm1 = check_tasksAssigned(data,function(resp1) {
});
var perm2 = check_projectMembers(data,function(resp1) {
});
if(perm1 && perm2) {
// do some db stuff here
}
Run Code Online (Sandbox Code Playgroud)
并尝试过这样,但结果在所有情况下都是一样的.
var perm1 = check_tasksAssigned(data);
var perm2 = check_projectMembers(data);
if(perm1 && perm2) {
// do some db stuff here
}
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个问题.
提前致谢
我正在尝试将 PayFast 支付网关集成到我的 laravel 应用程序中,但收到 419 错误,我认为这很奇怪,下面是代码。
我已经按照 PayFast 文档中的方式配置了所有内容,并且在 ngrok 和通知 url 上检查它,我收到 419 未知状态,我不知道我缺少什么。请查看我的代码并让我知道我缺少什么。
PayFast 表单视图
<form target="_blank" action="https://sandbox.payfast.co.za/eng/process" method="POST">
<input type="hidden" name="merchant_id" value="10015150">
<input type="hidden" name="merchant_key" value="aaid6ctdo8lxz">
<input type="hidden" name="custom_str1" value="{{$business->id}}">
<input type="hidden" name="amount" value="200.00">
<input type="hidden" name="name_first" value="">
<input type="hidden" name="name_last" value="">
<input type="hidden" name="email_address" value="">
<input type="hidden" name="cell_number" value="0823456789">
<input type="hidden" name="item_name" value="Making your business Featured on our Website">
<input type="hidden" name="return_url" value="http://95d16c17.ngrok.io/return">
<input type="hidden" name="cancel_url" value="http://95d16c17.ngrok.io/cancel">
<input type="hidden" name="notify_url" value="http://95d16c17.ngrok.io/notify">
<button type="submit" title="You will …Run Code Online (Sandbox Code Playgroud) 在下面的例子中,myFonk立即调用; 它不会等待click事件.为什么不?
function myFonk(info) {
$("#result").html(info);
}
function getText(text) {
return function () {
myFonk(text);
}
}
$(document).ready(function () {
$("#b1").click(getText("getText"));
$("#b2").click(myFonk("myFonk"));
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试用听众编写一个项目,我的按钮在他们改变颜色的地方工作,现在我需要我的mouseLIsteners打印鼠标正在做的文本.例如:"鼠标已进入黄色区域,鼠标已退出黄色区域,鼠标已点击/释放黄色区域等" 我实现了它们,但没有任何工作要打印文本.这是我的代码:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.geom.Line2D;
import java.awt.geom.Point2D;
import javax.swing.JComponent;
public class SwingLab
{
// frame properties
private static final int FRAME_WIDTH = 400; private static final int FRAME_HEIGHT = 400;
public static void main(String[] args)
{
// Instantiate a frame (the main window)
JFrame frame = new JFrame();
// The buttons (one for each color)
final JButton bRed = …Run Code Online (Sandbox Code Playgroud) 例如:
count([2, 1, 4, 5, 2, 8], (e) => e === 2) // Expected: 2
count([1, 2, 3, 4], (e) => e > 1) // Expected: 3
Run Code Online (Sandbox Code Playgroud)
还需要使用forEach
我拥有的:
function count(arr, callback) {
let values = 0
arr.forEach(cb ? values++ : values + 0)
return values
}
Run Code Online (Sandbox Code Playgroud)
但这不起作用。有什么建议吗?
这是一个带有匿名回调的简单的AJAX请求.双方complete并error已触发.为什么?
$.ajax({
url:'/echo/js/?js=hello%20world!',
complete: function (response) {
console.log("In anonymous success callback");
console.log("response text: " + response.responseText);
console.log("response object:");
console.log(response);
},
error: function (error) {
console.log("In anonymous error callback");
console.log("error object:");
console.log(error);
}
});
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/abalter/tz0tu04y/
编辑 我尝试使用promises,现在我只是得到错误.我的"简单的"ajax肯定有问题.
$.ajax({
url: '/echo/js/?js=hello%20world!',
type: 'POST',
})
.done(function(response) {
console.log("In anonymous JS success callback");
console.log("response text: " + response.responseText);
console.log("response object:");
console.log(response);
})
.fail(function(error) {
console.log("In anonymous JS error callback");
console.log("error object:");
console.log(error);
})
.always(function(data) {
console.log("JS I will always do …Run Code Online (Sandbox Code Playgroud) 下面是使用async-waterfall方法的代码段.我怎么能用诺言转换这个.
async.waterfall([
function(callback){
User.update({username: user.username}, {$set: update_list}, function(err, a_user) {
if (err) {
err = new Error();
err.code = 400;
err.message = "Unexpected error occurred."
callback(err)
}
if (!a_user) {
err = new Error();
err.code = 400;
err.message = "User not found."
callback(err)
}else{
callback(null, "updated", user_image);
}
})
}, function(message, user_image, callback){
if(user_image == undefined){
callback(null, "done")
}else{
Bean.update({username: user.username, status:"Active"}, {$set: {user_image:user_image}},{multi:true},function(err, beanUpdated){
if(err){
err = new Error();
err.code = 400;
err.message = "Unexpected error occurred."
callback(err)
}else{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个模块,该模块根据传递给函数的密钥从MySQL数据库返回一个值.
以下代码在独立测试时工作正常,我能够得到结果,但是当我尝试从函数调用得到结果时,我得到了未定义.
var value = getKey("tc_api_user_key");
Run Code Online (Sandbox Code Playgroud)
我怀疑它是由于返回声明.我应该如何让调用函数等待结果.
var mysql = require('promise-mysql')
, dbConnect = require('../connection.js')
, fs = require('fs')
, select = fs.readFileSync(__dirname + '/queries/getallkey.sql').toString();
let getKey = (key_id) => {
mysql.createConnection(dbConnect.getConnection()).then(function(conn){
var result = conn.query(select);
conn.end();
return result;
}).then(function(rows){
// Logs out a list of hobbits
Object.keys(rows).forEach(function(key) {
var item = rows[key];
if (key_id == item.key_id) {
return item.key_value;
}
});
});
}
var value = getKey("tc_api_user_key");
console.log(value)
Run Code Online (Sandbox Code Playgroud)
这个问题不是conn.query(),如果使用console.out结果,函数按预期工作,它只是在函数调用中不可用.可能是由于呼叫的异步性质.
我想知道什么时候应该使用PHP回调函数,使用PHP回调函数代替传统函数有什么好处?
例如
以小写形式获取名称的传统方法
<?php
function string($string){
$results = array(
'upper' => strtoupper($string),
'lower' => strtolower($string),
);
return $result;
}
$name = string('Ahmar');
echo $name; //Output: ahmar
?>
Run Code Online (Sandbox Code Playgroud)
使用回调获得相同的输出
<?php
function string($string, $callback){
$results = array(
'upper' => strtoupper($string),
'lower' => strtolower($string)
);
if(is_callable($callback)){
call_user_func($calllback, $result);
}
}
string('Ahmar', function($name){
echo $name['lower']; //Output: ahmar
});
?>
Run Code Online (Sandbox Code Playgroud)
请解释一下使用闭包回调有什么好处,我们应该什么时候使用它?谢谢