这可能是一个愚蠢的问题,但是中间的承诺链,你如何拒绝来自其中一个函数的承诺呢?例如:
someActionThatReturnsAPromise()
.then(function(resource) {
return modifyResource(resource)
})
.then(function(modifiedResource) {
if (!isValid(modifiedResource)) {
var validationError = getValidationError(modifiedResource);
// fail promise with validationError
}
})
.catch(function() {
// oh noes
});
Run Code Online (Sandbox Code Playgroud)
不再引用原始的解析/拒绝功能或PromiseResolver.我应该添加return Promise.reject(validationError);吗?
有人可以__autoreleasing在下面的示例代码块中向我解释一下目的吗?
- (void)execute:(NSError * __autoreleasing *)error {
// do stuff, possibly assigning error if something went wrong
}
Run Code Online (Sandbox Code Playgroud)
我删除了__autoreleasing所有东西似乎仍然编译/运行正常.我开始使用obj-c后ARC,所以我从来没有真正学过/理解所有那些双下划线的东西.我已阅读ARC过渡指南,但我不完全了解他们的NSError示例.
出于某种原因,非IE浏览器似乎在发送服务器端重定向(使用Location头)时保留URL哈希(如果存在).例:
// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx
Run Code Online (Sandbox Code Playgroud)
如果我访问:
Test.aspx#foo
Run Code Online (Sandbox Code Playgroud)
在Firefox/Chrome中,我被带到:
http://www.yahoo.com#foo
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么会这样?我已经在不同的平台上尝试了各种服务器端重定向(虽然所有这些都导致了Location头),但这似乎总是发生.我没有在HTTP规范中看到它,但它似乎确实是浏览器本身的问题.URL哈希(如预期的那样)永远不会发送到服务器,因此服务器重定向不会被它污染,浏览器只是出于某种原因持久化它.
有任何想法吗?
transform属性允许您旋转或翻转,但是如何同时执行这两个操作?假设我想将元素旋转90度并水平翻转?两者都使用相同的属性,因此后者会覆盖前者.为方便起见,这是一个示例小提琴:
transform: rotate(90deg);
transform: scaleX(-1);
Run Code Online (Sandbox Code Playgroud) 是否有一个API以编程方式从浏览器操作按钮内刷新当前选项卡?我配置了后台页面,它通过以下方式附加一个监听器:
chrome.browserAction.onClicked.addListener(function(tab) { ... });
Run Code Online (Sandbox Code Playgroud)
因此,回调函数检索对其单击的选项卡的引用,但我没有在任何地方看到API来刷新/重新加载该选项卡.
是否有支持日期格式模式/令牌的实际全面列表?我一直在关注API文档,他们提到了其中一些,例如MM,但其余的是哪里?
这完全是一种最佳实践类型问题,因此语言无关紧要.我理解MVC的基本原理,并且它有不同的,微妙的风格(即视图直接引用模型而不是控制器的数据委托).
我的问题是关于跨MVC通信,当这些MVC嵌套时.一个例子是绘图程序(如Paint或其他东西).Canvas本身可以是MVC,但每个绘制的实体也可以(例如Shapes,Text).从型号上来看,是有意义的CanvasModel有实体的集合,而是应该CanvasView和CanvasController分别有实体视图和控制器相应的收藏?
另外,添加新绘制实体的最佳/最干净的方法是什么?假设用户激活了CircleTool,他们在"画布"视图中单击并开始绘制形状.该CanvasView可发射相关的鼠标按下/移动/向上的事件CanvasController可以听.然后,控制器可以基本上将这些事件代理到CircleTool(状态模式).鼠标按下时,CircleTool会想要创建一个新的Circle.工具是否应该CircleEntityController直接创建并调用类似的东西canvasController.addEntity(circleController)?创建Circle的模型和视图的责任应该放在哪里呢?
对不起,如果这些问题有点模糊:)
- 编辑 -
这是我正在谈论的伪代码示例:
CircleTool {
...
onCanvasMouseDown: function(x, y) {
// should this tool/service create the new entity's model, view, and controller?
var model = new CircleModel(x, y);
var view = new CircleView(model);
var controller = new CircleController(model, view);
// should the canvasController's add method take in all 3 components
// and then add them to their respective endpoints?
this.canvasController.addEntity(model, view, …Run Code Online (Sandbox Code Playgroud) 我仍然是使用Promise API的新手,我正在努力避免如何避免深度嵌套的Promise链,据我所知,这是使用Promise的好处之一.使用以下伪代码作为示例,当后续的依赖于先前的上下文时,如何避免嵌套Promise?
function loadDependency1() {
// return a promsise to load the first dependency
}
function loadDependency2(dependency1) {
// return a promise to load the second dependency, which relies on the first dependency
}
function loadDependency3(dependency2) {
// return a promise to load the third dependency, which relies on the second dependency
}
function doWork(dependency1, dependency2, dependency3) {
// finally have all the things necessary to do work
}
// load all the dependencies and eventually doWork
loadDependency1().then(function(dependency1) {
return …Run Code Online (Sandbox Code Playgroud) 我正在阅读关于线程安全的Apple文档,而且我并不完全清楚(在实践中)真正构成一个线程安全的类.为了更好地理解这一点,为了使线程安全(以及为什么),将需要对下面的类进行什么操作?
#import "UnsafeQueue.h"
@interface UnsafeQueue()
@property (strong, nonatomic) NSMutableArray *data;
@end
@implementation UnsafeQueue
- (id)peek {
return [self.data firstObject];
}
- (NSUInteger)length {
return [self.data count];
}
- (void)enqueue:(id)datum {
[self.data addObject:datum];
}
// other methods omitted...
@end
Run Code Online (Sandbox Code Playgroud)
只需创建一个ivar NSLock,然后锁定/解锁与底层NSMutableArray的所有交互?
长度方法,只是要求数组的计数,也需要这样做吗?
我对文档不太清楚何时使用其中一种或另一种。从我尝试过的事情来看,他们似乎都有相同的行为。到底有什么区别?
objective-c ×3
ios ×2
javascript ×2
promise ×2
css ×1
css3 ×1
fragment ×1
hash ×1
http ×1
ios6 ×1
redirect ×1
spring ×1
spring-boot ×1
url ×1